// 测试七牛云DeepSeek API
const https = require('https');

// 七牛云API配置
const QINIU_CONFIG = {
    baseUrl: 'https://openai.qiniu.com/v1',
    apiKey: 'sk-97fc588df536d5fb0230f07f463d4703f14d762ba2f8363913989827a90be900'
};

// 测试获取模型列表
function testGetModels() {
    return new Promise((resolve, reject) => {
        console.log('🔍 测试获取七牛云模型列表...');
        
        const options = {
            hostname: 'openai.qiniu.com',
            port: 443,
            path: '/v1/models',
            method: 'GET',
            headers: {
                'Authorization': `Bearer ${QINIU_CONFIG.apiKey}`,
                'Content-Type': 'application/json'
            }
        };

        const req = https.request(options, (res) => {
            let data = '';
            
            res.on('data', (chunk) => {
                data += chunk;
            });
            
            res.on('end', () => {
                try {
                    const parsed = JSON.parse(data);
                    console.log('✅ 模型列表获取成功!');
                    console.log('📋 可用模型:');
                    if (parsed.data && Array.isArray(parsed.data)) {
                        parsed.data.forEach(model => {
                            console.log(`  - ${model.id}`);
                        });
                    } else {
                        console.log('响应数据:', parsed);
                    }
                    resolve(parsed);
                } catch (error) {
                    console.error('❌ 解析响应失败:', error.message);
                    console.log('原始响应:', data);
                    reject(error);
                }
            });
        });

        req.on('error', (error) => {
            console.error('❌ 请求失败:', error.message);
            reject(error);
        });

        req.end();
    });
}

// 测试角色扮演对话
function testRoleplay() {
    return new Promise((resolve, reject) => {
        console.log('\n🎭 测试柯南角色扮演...');
        
        const postData = JSON.stringify({
            model: 'deepseek-v3',
            messages: [
                {
                    role: 'system',
                    content: '你是江户川柯南（工藤新一），一个被黑衣组织灌下毒药变成小学生的天才侦探。说话时会说"啊咧咧"、"真相只有一个"等经典台词，经常扶眼镜，镜片会闪过白光。推理能力超强，对任何谜题都感兴趣。语气自信但保持小学生的外表。请始终保持柯南的语气和性格特点。'
                },
                {
                    role: 'user',
                    content: '请你以柯南的语气和我进行对话'
                }
            ],
            stream: false,
            max_tokens: 2048,
            temperature: 0.8
        });
        
        const options = {
            hostname: 'openai.qiniu.com',
            port: 443,
            path: '/v1/chat/completions',
            method: 'POST',
            headers: {
                'Authorization': `Bearer ${QINIU_CONFIG.apiKey}`,
                'Content-Type': 'application/json',
                'Content-Length': Buffer.byteLength(postData)
            }
        };

        const req = https.request(options, (res) => {
            let data = '';
            
            res.on('data', (chunk) => {
                data += chunk;
            });
            
            res.on('end', () => {
                try {
                    const parsed = JSON.parse(data);
                    if (parsed.choices && parsed.choices[0]) {
                        console.log('✅ 柯南角色扮演成功!');
                        console.log('🤖 柯南回复:', parsed.choices[0].message.content);
                        resolve(parsed);
                    } else {
                        console.log('❌ 响应格式异常:', parsed);
                        reject(new Error('响应格式异常'));
                    }
                } catch (error) {
                    console.error('❌ 解析响应失败:', error.message);
                    console.log('原始响应:', data);
                    reject(error);
                }
            });
        });

        req.on('error', (error) => {
            console.error('❌ 请求失败:', error.message);
            reject(error);
        });

        req.write(postData);
        req.end();
    });
}

// 测试联网搜索功能
function testSearch() {
    return new Promise((resolve, reject) => {
        console.log('\n🌐 测试联网搜索功能...');
        
        const postData = JSON.stringify({
            model: 'deepseek-v3?search', // 启用联网搜索
            messages: [
                {
                    role: 'system',
                    content: '你是江户川柯南，可以搜索最新信息来回答用户的问题。'
                },
                {
                    role: 'user',
                    content: '今天北京天气怎么样？'
                }
            ],
            stream: false,
            max_tokens: 2048,
            temperature: 0.8
        });
        
        const options = {
            hostname: 'openai.qiniu.com',
            port: 443,
            path: '/v1/chat/completions',
            method: 'POST',
            headers: {
                'Authorization': `Bearer ${QINIU_CONFIG.apiKey}`,
                'Content-Type': 'application/json',
                'Content-Length': Buffer.byteLength(postData)
            }
        };

        const req = https.request(options, (res) => {
            let data = '';
            
            res.on('data', (chunk) => {
                data += chunk;
            });
            
            res.on('end', () => {
                try {
                    const parsed = JSON.parse(data);
                    if (parsed.choices && parsed.choices[0]) {
                        console.log('✅ 联网搜索成功!');
                        console.log('🤖 柯南回复:', parsed.choices[0].message.content);
                        resolve(parsed);
                    } else {
                        console.log('❌ 响应格式异常:', parsed);
                        reject(new Error('响应格式异常'));
                    }
                } catch (error) {
                    console.error('❌ 解析响应失败:', error.message);
                    console.log('原始响应:', data);
                    reject(error);
                }
            });
        });

        req.on('error', (error) => {
            console.error('❌ 请求失败:', error.message);
            reject(error);
        });

        req.write(postData);
        req.end();
    });
}

// 主测试函数
async function runTests() {
    console.log('🚀 开始测试七牛云DeepSeek API...\n');
    
    try {
        // 测试获取模型列表
        await testGetModels();
        
        // 测试角色扮演
        await testRoleplay();
        
        // 测试联网搜索
        await testSearch();
        
        console.log('\n🎉 所有测试通过！七牛云DeepSeek API配置正确！');
        console.log('✅ 现在可以重启Spring Boot应用来使用七牛云API了');
        
    } catch (error) {
        console.error('\n❌ 测试失败:', error.message);
        console.log('💡 请检查：');
        console.log('   1. API Key是否正确');
        console.log('   2. 网络连接是否正常');
        console.log('   3. 七牛云服务是否可用');
    }
}

// 运行测试
runTests();